LINQ Expressions এবং Lambda Expressions হলো C#-এ ডেটা কুয়েরি এবং ম্যানিপুলেশনের জন্য ব্যবহৃত দুটি গুরুত্বপূর্ণ কনসেপ্ট। LINQ (Language Integrated Query) ব্যবহার করার সময় আমরা সাধারণত Query Expressions এবং Lambda Expressions দুটো ধরনেই কুয়েরি তৈরি করি। তবে, তাদের মধ্যে কিছু মৌলিক পার্থক্য রয়েছে, এবং প্রতিটির নিজস্ব সুবিধা এবং ব্যবহার ক্ষেত্র আছে।
LINQ Query Expressions C# ভাষার একটি বিশেষ সিনট্যাক্স যা SQL-এর মতো কুয়েরি তৈরি করতে ব্যবহার করা হয়। এটি বেশ সহজ এবং পাঠযোগ্য হয়, কারণ এটি SQL স্টাইলে ডেটা কুয়েরি করার সুযোগ দেয়। Query Expressions সাধারণত from, where, select, orderby ইত্যাদি কিওয়ার্ড ব্যবহার করে।
var query = from item in collection
where item.Condition
select item;
এখানে:
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
// LINQ Query Expression ব্যবহার করে সমস্ত সংখ্যা বের করা যা ৩ এর বেশি
var result = from num in numbers
where num > 3
select num;
foreach (var num in result)
{
Console.WriteLine(num); // Output: 4, 5, 6
}
এখানে from
, where
এবং select
ব্যবহার করে LINQ কুয়েরি তৈরি করা হয়েছে যা ৩ এর বেশি সব সংখ্যাকে নির্বাচন করে।
Lambda Expressions হলো অনামিক (anonymous) ফাংশন, যা C# এর মধ্যে ইনলাইন কোড লিখতে ব্যবহৃত হয়। এটি একটি সংক্ষিপ্ত সিনট্যাক্স যা ডেটা কুয়েরি করার জন্য খুবই কার্যকরী। Lambda Expressions সাধারণত delegate বা Func/Action টাইপের প্যারামিটার হিসেবে ব্যবহৃত হয়, এবং এটি ফাংশনাল প্রোগ্রামিং প্যাটার্নে কাজ করে।
Lambda Expression সাধারণত একটি ফাংশন বা মেথড হিসেবে কাজ করে, যেখানে parameter => expression এই রূপে লেখা হয়।
(collection => expression)
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
// Lambda Expression ব্যবহার করে সমস্ত সংখ্যা বের করা যা ৩ এর বেশি
var result = numbers.Where(num => num > 3);
foreach (var num in result)
{
Console.WriteLine(num); // Output: 4, 5, 6
}
এখানে:
Where
মেথডের মধ্যে num => num > 3
হল একটি Lambda Expression, যা num
প্যারামিটার গ্রহণ করে এবং তার মান ৩ এর বেশি কিনা যাচাই করে।Where
, Select
, Aggregate
, OrderBy
, ইত্যাদি LINQ মেথডের সাথে বেশ ভালোভাবে কাজ করে।List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
// Lambda Expression ব্যবহার করে ফিল্টারিং করা
var filteredNumbers = numbers.Where(num => num % 2 == 0);
foreach (var num in filteredNumbers)
{
Console.WriteLine(num); // Output: 2, 4, 6
}
এখানে, Where
মেথডের মধ্যে Lambda Expression ব্যবহার করে সমস্ত ইভেন সংখ্যা নির্বাচন করা হয়েছে।
List<string> names = new List<string> { "Alice", "Bob", "Charlie" };
// Lambda Expression ব্যবহার করে নামের প্রথম অক্ষর বের করা
var initials = names.Select(name => name[0]);
foreach (var initial in initials)
{
Console.WriteLine(initial); // Output: A, B, C
}
এখানে, Select
মেথডের মাধ্যমে নামের প্রথম অক্ষর নির্বাচন করা হয়েছে।
List<int> numbers = new List<int> { 4, 1, 3, 6, 2, 5 };
// Lambda Expression ব্যবহার করে সজ্জা (ordering)
var sortedNumbers = numbers.OrderBy(num => num);
foreach (var num in sortedNumbers)
{
Console.WriteLine(num); // Output: 1, 2, 3, 4, 5, 6
}
এখানে, OrderBy
মেথড ব্যবহার করে সংখ্যা গুলিকে অধিকৃত ক্রমে সাজানো হয়েছে।
LINQ Expressions এর শক্তি মূলত Query Expressions এবং Lambda Expressions একসাথে ব্যবহার করার মাধ্যমে অনেক বৃদ্ধি পায়। আপনি একটি Query Expression ব্যবহার করে কুয়েরি তৈরি করতে পারেন, এবং তারপর সেই কুয়েরি তে Lambda Expression প্রয়োগ করতে পারেন।
List<int> numbers = new List<int> { 1, 2, 3, 4, 5, 6 };
// Query Expression এর সাথে Lambda Expression ব্যবহার করা
var result = from num in numbers
where num % 2 == 0
select num;
foreach (var num in result)
{
Console.WriteLine(num); // Output: 2, 4, 6
}
এখানে, Query Expression
দিয়ে ফিল্টার করা হয়েছে এবং তারপর select
অংশে Lambda Expression ব্যবহার করা হয়েছে।
common.read_more